home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok83 / wbreadargs1.0 / wbreadargstest.mod < prev    next >
Text File  |  1993-11-04  |  3KB  |  117 lines

  1. (*************************************************************************
  2.  
  3. :Program.    WBReadArgsTest.mod
  4. :Contents.   test for WBReadArgs
  5. :Author.     Hartmut Goebel [hG]
  6. :Address.    Aufseßplatz 5, D-8500 Nürnberg 40
  7. :Address.    UseNet: hartmut@oberon.nbg.sub.org
  8. :Address.    Z-Netz: hartmut@asn.zer   Fido: 2:246/81.1
  9. :Copyright.  Copyright © 1993 by Hartmut Goebel
  10. :Language.   Oberon
  11. :Translator. Amiga Oberon V3.0
  12. :History.    V1.0, 03 Jan 1993 [hG]
  13. :Date.       03 Jan 1993 15:46:19
  14.  
  15. (* $StackChk- $NilChk- $RangeChk- $CaseChk- $OvflChk- $ReturnChk- $ClearVars- *)
  16.  
  17. *************************************************************************)
  18.  
  19. MODULE WBReadArgsTest;
  20.  
  21. IMPORT
  22.   io,       NoGuru,
  23.   WBReadArgs,
  24.   ol := OberonLib,
  25.   d  := Dos,
  26.   e  := Exec,
  27.   wb := Workbench;
  28.  
  29. CONST
  30.   Template = "Files/M,Switch/S,Toggle/T,Number/N/K,Keyword/K,Needed/A";
  31.  
  32. TYPE
  33.   ArgArray = STRUCT
  34.     files: UNTRACED POINTER TO ARRAY d.maxMultiArgs OF e.STRPTR;
  35.     switch, toggle: LONGINT;
  36.     number: UNTRACED POINTER TO ARRAY 1 OF LONGINT;
  37.     keyword: e.STRPTR;
  38.     needed: e.STRPTR;
  39.   END;
  40.  
  41. CONST
  42.   argArray = ArgArray(NIL,0,d.DOSTRUE,NIL,NIL,NIL);
  43.  
  44. VAR
  45.   argarray: ArgArray;
  46.   args: d.RDArgsPtr;
  47.   wbargs: WBReadArgs.Arguments;
  48.   wbm: wb.WBStartupPtr;
  49.  
  50. PROCEDURE ShowArgs();
  51. VAR
  52.   i: INTEGER;
  53. BEGIN
  54.   IF argarray.files # NIL THEN
  55.     io.WriteString("Files: ");
  56.     i := 0;
  57.     WHILE argarray.files[i] # NIL DO
  58.       io.WriteString(argarray.files[i]^);
  59.       io.Write(" ");
  60.       INC(i);
  61.     END;
  62.     io.WriteLn;
  63.   END;
  64.   IF argarray.switch # d.DOSFALSE THEN
  65.     io.WriteString("Switch is SET\n");
  66.   ELSE
  67.     io.WriteString("Switch is NOT set\n");
  68.   END;
  69.   IF argarray.toggle # d.DOSFALSE THEN
  70.     io.WriteString("Toggle is SET\n");
  71.   ELSE
  72.     io.WriteString("Toggle is NOT set\n");
  73.   END;
  74.   IF argarray.number # NIL THEN
  75.     io.WriteString("Number is ");
  76.     io.WriteInt(argarray.number[0],0);
  77.     io.WriteLn;
  78.   END;
  79.   IF argarray.keyword # NIL THEN
  80.     io.WriteString("Keyword is ");
  81.     io.WriteString(argarray.keyword^);
  82.     io.WriteLn;
  83.   END;
  84.   IF argarray.needed # NIL THEN
  85.     io.WriteString("Needed is ");
  86.     io.WriteString(argarray.needed^);
  87.     io.WriteLn;
  88.   END;
  89. END ShowArgs;
  90.  
  91.  
  92. BEGIN
  93.   argarray := argArray;
  94.   IF ol.wbStarted THEN
  95.     wbm := ol.wbenchMsg;
  96.     IF ~ WBReadArgs.ReadArgs(wbm.argList[0],Template,argarray,wbargs) THEN
  97.       io.WriteString("Error: "); io.WriteInt(WBReadArgs.error,0);
  98.     ELSE
  99.       io.WriteString("started from Workbench\n\n");
  100.       ShowArgs();
  101.       WBReadArgs.FreeArgs(wbargs);
  102.     END;
  103.     d.Delay(500);
  104.   ELSE
  105.     args := d.ReadArgs(Template,argarray,NIL);
  106.     IF args = NIL THEN
  107.       IF d.PrintFault(d.IoErr(),"WBReadArgsTest") THEN END;
  108.       HALT(20);
  109.     ELSE
  110.       io.WriteString("started from Shell\n\n");
  111.       ShowArgs();
  112.       d.FreeArgs(args);
  113.     END;
  114.   END;
  115.  
  116. END WBReadArgsTest.
  117.